package com.dingreading.cloud.admin.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2024-02-27
 */
@Data
@Table(value = "wh_stock_out_delivery")
public class WhStockOutDelivery implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Auto)
    private Long id;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 发货类型 1.正常发货 2.补发货
     */
    @ApiModelProperty(value = "发货类型")
    private Integer type;

    /**
     * 出库订单号
     */
    @ApiModelProperty(value = "出库订单号")
    private String outCode;

    /**
     * 商品订单号
     */
    @ApiModelProperty(value = "商品订单号")
    private String orderCode;

    /**
     * 收货人姓名
     */
    @ApiModelProperty(value = "收货人姓名")
    private String name;

    /**
     * 收货人手机号码
     */
    @ApiModelProperty(value = "收货人手机号码")
    private String phone;

    /**
     * 收货地址
     */
    @ApiModelProperty(value = "收货地址")
    private String address;

    /**
     * 快递公司
     */
    @ApiModelProperty(value = "快递公司")
    private String expressName;

    /**
     * 快递单号
     */
    @ApiModelProperty(value = "快递单号")
    private String expressCode;

    /**
     * 快递费用到付 1.公司支付 2.到付 3.自提 4.包邮
     */
    @ApiModelProperty(value = "快递费用到付")
    private Integer expressPayType;
    /**
     * 包裹数量
     */
    @ApiModelProperty(value = "包裹数量")
    private Integer packageNum;

    /**
     * 快递金额
     */
    @ApiModelProperty(value = "快递金额")
    private Double expressPrice;

    /**
     * 揽收时间
     */
    @ApiModelProperty(value = "揽收时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expressTime;

    /**
     * 发货仓库id
     */
    @ApiModelProperty(value = "发货仓库id")
    private Long deliveryWarehouseId;

    /**
     * 发货仓库名称
     */
    @ApiModelProperty(value = "发货仓库名称")
    private String deliveryWarehouseName;

    /**
     * 出库方式 1.自营仓库 2.线上发货 3.第三方仓库
     */
    @ApiModelProperty(value = "出库方式")
    private Integer stockOutMethod;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String addStaffName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
